﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Nop.Core.Log.Model;

namespace Nop.Core.Log
{
    /// <summary>
    /// log service 
    /// </summary>
    public interface ILog
    {
        /// <summary>
        /// writing info message
        /// </summary>
        /// <param name="message"></param>
        void Info(string message);

        /// <summary>
        /// writing debug message
        /// </summary>
        /// <param name="message"></param>
        void Debug(string message);

        /// <summary>
        /// writing error message
        /// </summary>
        /// <param name="message"></param>
        void Error(string message);

        /// <summary>
        /// writing exception message
        /// </summary>
        /// <param name="exception"></param>
        void Exception(Exception exception);

        /// <summary>
        /// user-defined write log event
        /// </summary>
        event EventHandler<EventArgs<Exception>> ProcessException;
    }
}
